package com.design_patterns.factory_method;


/**
 * @author: 李德才
 * @description:
 * @create: 2020-09-20 18:49
 **/

/**
 * 工厂方法
 */
public class AbstractFactoryTest {
    public static void main(String[] args) {
        AbstractFactory abstractFactory = new ConcreteFactory1();
        abstractFactory.newProduct().show();
    }
}

//抽象产品：提供了产品的接口
interface Product {
    void show();
}

//具体产品1：实现抽象产品中的抽象方法
class ConcreteProduct1 implements Product {
    public void show() {
        System.out.println("具体产品1显示...");
    }
}


//抽象工厂：提供了产品的生成方法
interface AbstractFactory {
    Product newProduct();
}

//具体工厂1：实现了产品的生成方法
class ConcreteFactory1 implements AbstractFactory {
    public Product newProduct() {
        System.out.println("具体工厂1生成-->具体产品1...");
        return new ConcreteProduct1();
    }
}

